1) Field of the Invention
The present invention relates to a system and a method for permitting software to be shared over a network, for example the Internet or an Intranet. The invention also relates to a computer program interface which allows multiple users to share copies of the same software in real-time. The system and interface are particularly, but not exclusively, suitable for use in education, especially in distance learning, in sharing real-time applications such as game playing and co-designing.
2) Description of Related Art
In many applications, for example in distance learning, it is desirable to have a system where software packages can be used and shared over the Internet for distance learning purposes. This is especially true for computer-aided design packages, such as Matlab (trademark), AutoCAD (trademark) and Octave (trademark). Many of these software packages are available for use for Unix, Linux, NT and Windows-based systems. Although some software packages permit distance learning, the existing packages, such as Matlab, can only be used over the Internet in a single-user mode, that is only a single user can use a single copy of the software at any one time.
It is desirable to allow multiple users to have access to a single copy of a software program at the same time; this would be particularly useful for teaching purposes and other co-operation purposes, such as game playing and working on a common design, whether over the Internet or an Intranet. It is also desirable that any such software which is useable over the Internet or Intranet does not require any additional software but only the use of simple browsers, such as Netscape navigator and Internet Explorer, and furthermore, it is also desirable that the access of multiple users is not impeded by any problems arising from bandwidth considerations and sending graphics files across Internet connections. It is also desirable to be able to provide a graphic-user interface (GUI) environment which is compatible with existing simulation/CAD packages, such as Octave and Matlab, and which can be used as a GUI for such systems to enable a similar Internet/Intranet user interactive functionality.
It is also desirable to allow an arbitrarily large number of multiple users to share the same program in real-time through multicasting and to take turns in controlling the software, especially simultaneously, as in game playing but hitherto this has not been possible in a generic and unified manner across non-homogeneous operating systems and for low capacity networks. The data transfer required is too high for existing network capacity and any sharing is slow and normally requires common operating platforms. It is generally not possible for users to share a design or a game if different software runs on different machines for example Computer Aided Design (CAD) software.